package com.hgw.easyrocketmq.base.producer;

import org.apache.rocketmq.client.producer.SendCallback;

/**
 * Description: 普通消息生产者
 * com.hgw.easyrocketmq.base.producer->BaseMsgProducer
 *
 * @author LinHuiBa-YanAn
 * @date 2023/1/2 13:29
 */
public interface BaseMsgProducer {

	/**
	 * 同步消息
	 *
	 * @param producerGroup 生产者组名
	 * @param topic         主题
	 * @param tag           标签
	 * @param context       内容
	 * @return 是否发送成功
	 */
	Boolean sendSyncMsg(String producerGroup, String topic, String tag, String context);

	/**
	 * 异步消息
	 *
	 * @param producerGroup 生产者组名
	 * @param topic         主题
	 * @param tag           标签
	 * @param context       内容
	 * @param sendCallback  发送回调
	 */
	void sendAsyncMsg(String producerGroup, String topic, String tag, String context, SendCallback sendCallback);

	/**
	 * 单向消息
	 *
	 * @param producerGroup 生产者组名
	 * @param topic         主题
	 * @param tag           标签
	 * @param context       内容
	 */
	void sendOneWayMsg(String producerGroup, String topic, String tag, String context);
}
